const mysql = require('mysql')
//建立数据库连接
mysql.createConnection({multipleStatements: true})
//导出数据库配置
module.exports = {
    //数据库配置
    config:{
        host: 'localhost',
        port: '3306',
        user: 'root',
        password: '123456',
        database: 'sheep'
    },
    //连接数据库，使用MySQL连接池的方式
    //连接池对象
    //同步sql封装
    sqlConnect:function (sql,sqlArr,callBack) {
        //建立连接池
        let pool = mysql.createPool(this.config)
        //配置连接池方式
        pool.getConnection((err,conn) => {
            if(err){
                console.log('连接失败',err);
                return false
            }
            //事件驱动回调
            conn.query(sql,sqlArr,callBack);
            //释放连接
            conn.release()
        })
    },
    //异步sql封装
    SySqlConnect:function (sySql,sqlArr) {
        //封装promise
        return new Promise((resolve,reject)=> {
            //建立连接池
            let pool = mysql.createPool(this.config)
            //配置连接池
            pool.getConnection((err,conn) => {
                if(err){
                    //连接池配置错误，返回错误
                    reject(err)
                }else {
                    //事件驱动回调
                    conn.query(sySql,sqlArr,(err,data) => {
                        if(err){
                            //如果事件回调函数运行报错，返回错误
                            reject(err)
                        }else{
                            //正常运行，返回数据
                            resolve(data)
                        }
                    } );
                    //释放连接
                    conn.release()
                }
            })
        })
            //promise建立失败，返回错误
            .catch((err) => {
            console.log(err);
        })
    }

}
